package com.travelshare.business.service;

import java.util.List;
import com.travelshare.business.domain.InfoCommunity;
import com.travelshare.common.core.domain.TreeCommunity;

/**
 * 社区信息Service接口
 * 
 * @author travelshare
 * @date 2024-02-22
 */
public interface IInfoCommunityService 
{
    /**
     * 查询社区信息
     * 
     * @param communityId 社区信息主键
     * @return 社区信息
     */
    public InfoCommunity selectInfoCommunityByCommunityId(Long communityId);

    /**
     * 查询社区信息列表
     * 
     * @param infoCommunity 社区信息
     * @return 社区信息集合
     */
    public List<InfoCommunity> selectInfoCommunityList(InfoCommunity infoCommunity);

    /**
     * 新增社区信息
     * 
     * @param infoCommunity 社区信息
     * @return 结果
     */
    public int insertInfoCommunity(InfoCommunity infoCommunity);

    /**
     * 修改社区信息
     * 
     * @param infoCommunity 社区信息
     * @return 结果
     */
    public int updateInfoCommunity(InfoCommunity infoCommunity);

    /**
     * 批量删除社区信息
     * 
     * @param communityIds 需要删除的社区信息主键集合
     * @return 结果
     */
    public int deleteInfoCommunityByCommunityIds(Long[] communityIds);

    /**
     * 删除社区信息信息
     * 
     * @param communityId 社区信息主键
     * @return 结果
     */
    public int deleteInfoCommunityByCommunityId(Long communityId);
    
    /**
     * 检测操作文章内容详情是否有权限
     * 
     * @param communityIds 数据主键集合
     * @param userId 用户id
     * @return 结果
     */
    public int checkCommunityByCommunityIdsAndUserId(Long[] communityIds, Long userId);

    /**
     * 批量更新攻略点击量
     * */
    public int  batchInfoCommunity(List<InfoCommunity> infoCommunityList);

    /**
     * app端 查询社区信息
     * 
     * @param communityId 社区信息主键
     * @return 社区信息
     */
    public InfoCommunity selectInfoCommunityForAppByCommunityId(Long communityId);
    
    /**
     * 查询社区信息列表
     * 
     * @param communityId 社区信息主键
     * @param userId 用户id
     * @return 社区信息集合
     */
    public List<InfoCommunity> selectChildCommunityListById(Long communityId, Long userId);
    
    /**
     * 查询社区信息树结构信息
     * 
     * @param communityId 社区信息主键
     * @param userId 用户id
     * @return 社区树信息集合
     */
    public List<TreeCommunity> selectCommunityTreeList(Long communityId, Long userId, String url );
}
